ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース7.0
E05164-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ttXlaNextUpdate

説明

この関数は、トランザクション・ログから最大maxrecordsの更新レコードをフェッチし、コミットされたトランザクションに関連付けられているレコードをrecordsバッファに返します。実際に返されたレコードの数が出力パラメータnreturnedに記録されます。

トランザクション・ログを永続モードで処理する場合は、ttXlaNextUpdateをコールするたびに、最後に読み取られたレコードにブックマークが再設定され、次のレコードのリストを返すためにttXlaNextUpdateへの次のコールが有効にされます。

この関数の使用方法については、「トランザクション・ログからの更新レコードの取得」を参照してください。

構文

SQLRETURN ttXlaNextUpdate(ttXlaHandle_h handle,

               out ttXlaUpdateDesc_t ***records,

               SQLINTEGER maxrecords,

               out SQLINTEGER *nreturned)

パラメータ

パラメータ
説明
handle
ttXlaHandle_h
データ・ストアのトランザクション・ログ・ハンドル。
records
完了したトランザクション・レコードを保持するバッファ。
maxrecords
SQLINTEGER
フェッチされるレコードの最大数。
nreturned
out
SQLINTEGER *
実際に返されたレコードの数。使用可能な更新データがない場合は、0(ゼロ)が返されます。

結果

コールが成功すると、SQL_SUCCESSが返されます。返されない場合は、ttXlaErrorを使用してエラーをレポートします。

この例では、最大100個のレコードを取得し、各レコードが処理されるループについて記述します。

ttXlaUpdateDesc_t **records;
SQLINTEGER nreturned;
SQLINTEGER i;

rc = ttXlaNextUpdate(xlahandle, &records, 100, &nreturned);

/* Check for errors; if none, process the records */

for (i = 0; i < nreturned; i++) {

    process(records[i]);

}

また、install_dir/demo/xla/persistent_xla/subscriber.cファイル内のinspectTransactions()関数およびinstall_dir/demo/xla/xla.cファイル内のmain()関数も参照してください。

注意

追跡ステータスに関係なく、すべてのデータ定義文に対して更新が生成されます。また、更新はすべてのXLA追跡対象表でのデータ更新処理に対して生成されます。つまり、XLAリーダーによる各処理では、不要な表IDの更新をフィルタ処理する必要があります。

また、表および列に対するアプリケーション・レベルの識別子の割当て、表の追跡ステータスの変更などの特定の処理でも更新が生成されます。

参照

ttXlaNextUpdateWait

ttXlaAcknowledge